home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d6 / ma.arc / MA.BAS (.txt) < prev    next >
Encoding:
GW-BASIC  |  1986-02-26  |  41.1 KB  |  185 lines

  1. 2  KEYOFF:FORX%=1TO10:KEYX%,"":NEXT:GOTO10
  2. 10  GOSUB 50020:CLS:COLOR 7,1,1:DEFINT A-Z:DEFSTR F
  3. 11  DIMC$,A$,A$(200),B.COD$(30),T.COD$(200),FH(50),BAL$(13),CLR$(13),TRX$(13),MO$(12),PN$(9,2),TB#(200),TOP(50),I(3),F(50),BA$(13),CL$(12),TR$(12)
  4. 15  DEFFNCN$(A$,A)=STRING$((A-LEN(A$))/2-0.5," ")+A$
  5. 20  T=29:TOP=1:BOT=21:LFT=18:RT=LFT+26:CLS:LOCATETOP+2,1:PRINTFNCN$("**  M I C R O   A C C O U N T I N G  **",80):PRINT:PRINT:PRINT
  6. 30  PRINTFNCN$("=== User-Supported Software ===",80):PRINT:PRINTFNCN$("If you have received this program",80):PRINTFNCN$("and find it of use,",80):PRINTFNCN$("your contribution will be appreciated",80):PRINTFNCN$("( $35.00 suggested )",80):PRINT
  7. 31  PRINTFNCN$("Donald R. Ramsey",80):PRINTFNCN$("727 Bunker Hill #70",80):PRINTFNCN$("Houston, Texas  77024",80):PRINT:PRINTFNCN$("You are encouraged to",80):PRINTFNCN$("Copy and Distribute this Program.",80)
  8. 32  PRINT:X=CSRLIN:COLOR 15,1,1:PRINT FNCN$("PRESS <ENTER>",80):COLOR 7,1,1:GOSUB 49700:GOSUB 150
  9. 50  CLS:GOSUB49000
  10. 100  FL1="S":T=29:TOP=1:BOT=20:LFT=19:RT=LFT+25:CLS:LOCATETOP+2,1:PRINTFNCN$("**  M A I N     M E N U  **",80):PRINT:PRINT:PRINT
  11. 101  PRINTTAB(T)"<T> Transaction Entry":PRINT
  12. 104  PRINTTAB(T)"<2> Reconcile Checkbook
  13. 105  PRINTTAB(T)"<3> Run Alternate System
  14. 106  PRINTTAB(T)"<4> Begin New Year
  15. 107  PRINTTAB(T)"<5> End Program":PRINT
  16. 108  PRINTTAB(T)"<R> Report   MENU
  17. 109  PRINTTAB(T)"<F> File Maintenance MENU":PRINT
  18. 110  PRINTTAB(T)"<D> Print Program Documentation
  19. 112  PRINT:X=CSRLIN:LOCATE X,LFT+5:COLOR 15,1,1:PRINT" PRESS THE NUMBER OF YOUR SELECTION ":COLOR 7,1
  20. 115  GOSUB49700:GOSUB50040
  21. 116  IF N.BACC=0 THEN LOCATE 22,1:COLOR 15,1:PRINT FNCN$("The System is not initialized... Use OPTION <F>, <3>, or <4> of this Menu",80)
  22. 130  GOSUB150:ONINSTR("T2345RFD",A$)GOTO1000,15000,140,25000,900,5000,20000,400:BEEP:GOTO130
  23. 140  CLS:COLOR 7,1:Y$=YEAR$:GOSUB 49030:CLOSE:GOTO 100
  24. 150  A$=INKEY$:IFA$=""THEN150 ELSERETURN
  25. 300  INPUTA$:IFINSTR("YNyn",A$)=0THEN300 ELSEIFA$="Y"ORA$="y"THENA$="Y" ELSEA$="N
  26. 301  RETURN
  27. 310  A1=1:GOSUB50100:IFA$=CHR$(250)THEN311 ELSEIFINSTR("ynYN",AN$)=0THENBEEP:GOTO310
  28. 311  RETURN
  29. 400  CLS:LOCATE10,1:PRINTFNCN$("To print Program Documentation, return to DOS by the MAIN MENU End Program",80):PRINT:PRINTFNCN$("then type MADOC.BAT and press <ENTER>",80):PRINT:PRINT:PRINT:PRINTFNCN$("Press <ENTER> to continue...",80)
  30. 401  GOSUB150:GOTO100
  31. 500  GOSUB800:PRINT"Press <ENTER> to continue, <E> to exit, or":PRINT"      <C> to make changes...";:GOSUB150:IFINSTR("CE"+CHR$(13),A$)=0THEN500 ELSERETURN
  32. 800  COLOR 7,1:LOCATE 23,1:PRINT STRING$(60," ");:LOCATE 24,1:PRINT STRING$(79," ");:LOCATE 23,1:RETURN
  33. 810  LOCATE13,1:FORF%=0TO7:PRINTC$;:NEXT:RETURN
  34. 820  LOCATE9,1:FORF%=0TO8:PRINTC$;:NEXT:RETURN
  35. 830  LOCATE6,1:FORF%=0TO15:PRINTC$;:NEXT:RETURN
  36. 860  LOCATE18,1:FORF%=0TO3:PRINTC$;:NEXT:RETURN
  37. 900  CLS:LOCATE 11,1:PRINT FNCN$("*** This Progam is about to END ***",80):COLOR 15:PRINT:PRINT FNCN$("VERIFY O/K   ( Y/N )",80);:GOSUB 300:COLOR 7:IF A$="N"THEN 100 ELSE CLS:CLOSE:SYSTEM
  38. 1000  IFN.BACC=0ORN.TACC=0THENCLS:LOCATE12,1:PRINTFNCN$("Either no Bank Accounts or no Budget Accounts have been assigned.",80):PRINTFNCN$("Please do this in File Maintenance",80):PRINT:BEEP:PRINTFNCN$("Press <ENTER>",80):GOSUB150:GOTO100
  39. 1010  ONERRORGOTO58000:Y$=YEAR$:RP$="":APMT$="":SW=0:XFER$="
  40. 1100  CLS:H$="TRANSACTION  MENU":GOSUB40000
  41. 1110  T=25:LOCATE8,1:PRINTTAB(T)"<1> Automatic Payments
  42. 1120  PRINTTAB(T)"<2> Individual Entries
  43. 1130  PRINTTAB(T)"<3> Print Checks":PRINT
  44. 1132  PRINTTAB(T)"<R> Report Menu
  45. 1134  PRINTTAB(T)"<F> File Maintenance Menu
  46. 1136  PRINTTAB(T)"<M> Main Menu
  47. 1140  GOSUB50040:GOSUB150:ONINSTR("123",A$)GOTO2000,3000,10000
  48. 1200  CLOSE:ONINSTR("RFM",A$)GOTO5000,20000,100:BEEP:GOTO1140
  49. 2000  GOSUB2900:C=1:FL%=1:CK.DATE$=DAT$:GOSUB40600
  50. 2010  SW=4:RP$="":APMT$="":GOSUB40401:IFA$=CHR$(250)THEN2200
  51. 2020  PF=1:GOSUB57300:PF=2:GOSUB57000:PF=3:GOSUB57200:PF=4:GOSUB57100
  52. 2030  GOSUB2950:CO=0
  53. 2100  FORX=1TON.APMT
  54. 2110  CO=CO+1:GET1,X:GOSUB2800
  55. 2120  IFCO=11THENCO=0:GOSUB2300:IFA$="N"THENCLS:GOSUB2900:GOSUB2950 ELSEIFA$="E"THEN2200
  56. 2130  NEXT
  57. 2150  GOSUB2300
  58. 2200  CLOSE:GOTO1000
  59. 2300  GOSUB860:GOSUB800:PRINT"Press <P> to Pay a bill, <N> for Next page":PRINT"      <E> to Exit...";:GOSUB150:GOSUB800:ONINSTR("PNE",A$)GOTO2310,2490,2490:BEEP:GOTO2300
  60. 2310  LOCATE19,1:PRINT"Pay Record #:":R=19:C=15:A1=3:GOSUB50400:RN=VAL(AN$):IFRN>N.APMTTHENBEEP:GOSUB800:PRINT"Record # too high... Press <ENTER>":GOSUB150:GOTO2310
  61. 2320  IFA$=CHR$(250)THEN2480
  62. 2330  PF=1:GOSUB57310:GET1,RN:LOCATE18,1:PRINT"Pay to:  ";FH(31):PRINT"Amount:  ";USINGP6$;CVD(FH(32));:PRINTTAB(25)"Pay from:  "FH(30)
  63. 2340  LOCATE18,60:PRINT"1. Pay As Is";:LOCATE19,60:PRINT"2. Change Amount";:LOCATE20,60:PRINT"3. Change Bank";:LOCATE21,60:PRINT"4. Skip this Item";
  64. 2350  COLOR 1,7:LOCATE 18,50:PRINT" Select ":COLOR 7,1:SOUND 600,1.5
  65. 2360  GOSUB50040:GOSUB150:LOCATE18,50:PRINT"        ":ONINSTR("1234",A$)GOTO2400,2500,2600,2300:BEEP:GOTO2350
  66. 2400  CK$=FH(30):GOSUB40100:GET4,R.NO:N.BA=R.NO
  67. 2401  LOCATE20,1:PRINT"Date    : ":R=20:C=11:AF$=F2(1):GOSUB50300:IFA$=CHR$(250)THEN2330 ELSEIFDE$=CHR$(255)THENLOCATER,C:PRINTCK.DATE$; ELSECK.DATE$=FND2$(AN$):T1=VAL(LEFT$(CK.DATE$,2)):GOSUB40490:GOSUB40495:IFFE="X"THENBEEP:GOTO2400
  68. 2405  CD$=FH(30):N=2:GOSUB3760:LOCATE23,1:PRINT"Next available Check No.:  ";CK.NO+1;
  69. 2410  LOCATE21,1:PRINT"Check # : ":R=21:C=11:A1=5:GOSUB50400:IFDE$=CHR$(255)THENCK.NO=CK.NO+1:LOCATER,C:PRINTUSINGP3$;CK.NO ELSEIFA$=CHR$(250)THEN2400 ELSECK.NO=VAL(AN$)
  70. 2420  GOSUB800:LOCATE21,25:PRINT"Print Check (Y/N)? ";:R=21:C=45:GOSUB310:IFA$=CHR$(250)THEN2410 ELSEIFAN$="Y"THENGOSUB2700
  71. 2425  PF=2:GOSUB57010
  72. 2430  LSETFH(1)="C":LSETFH(2)=LEFT$(CK.DATE$,2)+MID$(CK.DATE$,4,2):LSETFH(3)=RIGHT$(STR$(CK.NO),5):LSETFH(4)=FH(31):LSETFH(5)=FH(32):LSETFH(6)=FH(33):LSETFH(7)="":LSETFH(8)=FH(30)
  73. 2431  LSETFAC(1)=FH(34):LSETFTX(1)=FH(35):LSETFAM(1)=FH(32):LSETFAC(2)="****
  74. 2450  GET4,N.BA:T#=CVD(FH(32)):LSETBAL$(13)=MKD$(CVD(BAL$(13))-T#):FORY=MOTO12:LSETBAL$(Y)=MKD$(CVD(BAL$(Y))-T#):NEXT:LSETCLR$(MO)="N":LSETTRX$(MO)="Y":LSETCK.N$=MKS$(CK.NO)
  75. 2460  CK$=FH(34):GOSUB40200:GET3,R.NO:LSETFH(23)=MKD$(CVD(FH(23))+T#)
  76. 2470  N.TRX=N.TRX+1:PUT2,N.TRX:PUT3,R.NO:PUT4,N.BA
  77. 2480  GOSUB860:GOTO2300
  78. 2490  RETURN
  79. 2500  R=19:C=10:A1=10:GOSUB50200:FH(32)=MKD$(VAL(AN$)):LOCATER,C:PRINT" ";USINGP6$;CVD(FH(32));:GOTO2350
  80. 2600  R=19:C=36:A1=4:GOSUB50100:CK$=AN$:GOSUB40100:IFCODE$<>"V"THENBEEP:GOTO2600 ELSEFH(30)=AN$:GOTO2350
  81. 2700  IF FL%=1 THEN GOSUB 800:COLOR 23:PRINT"Insure ";:COLOR 7:PRINT"Printer is on and":PRINT"Check forms are properly positioned then Press <ENTER>...";:GOSUB 150:FL%=0:GOSUB 800
  82. 2710  FH(4)=FH(31):FH(5)=FH(32):FH(6)=FH(33):XX=N.TRX:GOSUB10500:GOSUB10300:RETURN
  83. 2800  IFFH(39)<>"D"THENC=C+1:PRINT"    ";USING"###";X;:PRINTTAB(12)FH(30);TAB(19)FH(31);TAB(59)FH(34);TAB(67)USINGP1$;CVD(FH(32)):RETURN ELSERETURN
  84. 2900  CLS:H$="** AUTOMATIC PAYMENTS **":GOSUB40000
  85. 2910  LOCATE3,1:PRINT"  Record   Pay";TAB(58)"Budget":PRINT"  Number   From   Pay To";TAB(59)"Code";TAB(74)"Amount":PRINTSG$:RETURN
  86. 2950  LOCATE17,1:PRINTSG$:LOCATE6,1:CO=1:RETURN
  87. 3000  CLS:TOP=1:BOT=11:LFT=2:RT=77:GOSUB49700:GOSUB40600
  88. 3010  GOSUB40400:IFA$=CHR$(250)THEN3800
  89. 3040  PF=2:GOSUB57100:GET2,R.NO:GOSUB800
  90. 3045  BANK$=FH(11):A.NAME$=FH(12):T.BAL#=CVD(BAL$(13)):N.BA=R.NO
  91. 3050  PF=1:GOSUB57000:N=2:GOSUB3700
  92. 3065  PF=3:GOSUB57200
  93. 3070  LSETFH(7)=" ":LSETFH(8)=CD$
  94. 3100  GOSUB3900
  95. 3105  LOCATE 16,47:COLOR 23,1,1:PRINT"_";:COLOR 7:GOSUB 150:LSET FH(1)=A$:IF INSTR("CDM",A$)=0 THEN 3105 ELSE IF FH(1)="M"THEN 3800 ELSE GOSUB 810:IF FH(1)="D"THEN LOCATE 7,53:PRINT"DEPOSIT
  96. 3110  FX="N00020202":GOSUB52000:IFA$=CHR$(250)THENCLS:GOTO3100
  97. 3115  FX="N00030603":IFA$=CHR$(250)THEN3110 ELSEIFFH(1)="D"THENLSETFH(3)="  DEP":FX="N00040604
  98. 3120  GOSUB52000:A.BAL#=CVD(FH(5)):IFA$=CHR$(250)THEN3115
  99. 3125  LOCATE13,1:PRINT" Budget Account Assignment:":PRINTTAB(10)"Budget Code";TAB(28)"Tax Code";TAB(47)"Amount";TAB(63)"Amount Remaining";
  100. 3130  FX="N04010901
  101. 3140  GOSUB52000:IFA$=CHR$(250)THENFX="N00020606":GOTO3120 ELSEIFFE="E"THEN3190
  102. 3150  FX="N05010901":GOSUB52000:IFA$=CHR$(250)THENFX="N04010909":GOTO3140
  103. 3190  GOSUB500:IFA$="E"THENGOSUB3500:GOTO3800 ELSEIFA$=CHR$(13)THENGOSUB3500:CLS:FL="":NF=1:GOTO3100
  104. 3200  FL="C":FORR=15TO20:LOCATER,63:PRINTSTRING$(14," ");:NEXT:FX="C00020202":GOSUB52000:IFA$=CHR$(250)ORA$="E"THEN3250
  105. 3205  FX="C00030603":IFFH(1)="D"THENFX="C00040604":IFA$=CHR$(250)THEN3200
  106. 3210  GOSUB52000:IFA$=CHR$(250)THEN3205 ELSEIFA$="E"THEN3250
  107. 3220  FX="C04010901
  108. 3230  GOSUB52000:IFA$=CHR$(250)THENFX="C00030606":GOTO3210 ELSEIFA$="E"THEN3250
  109. 3240  FX="C05010901":GOSUB52000:IFA$=CHR$(250)THENFX="C04010909":GOTO3230
  110. 3250  FL="":GOTO3190
  111. 3500  N.TRX=N.TRX+1:GOSUB40300:T.BAL#=T.BAL#+T#
  112. 3510  LSETBAL$(13)=MKD$(T.BAL#):LSETCLR$(MO)="N":LSETTRX$(MO)="Y
  113. 3520  FORY=MOTO12
  114. 3530  LSETBAL$(Y)=MKD$(CVD(BAL$(Y))+T#)
  115. 3540  NEXT:LSETCK.N$=MKS$(CK.NO)
  116. 3550  PUT1,N.TRX:PUT2,N.BA
  117. 3560  FORY=1TO6:IFFAC(Y)="****"THEN3620
  118. 3580  CK$=FAC(Y):GOSUB40200:GET3,R.NO
  119. 3590  LSETFH(23)=MKD$(CVD(FH(23))+CVD(FAM(Y)))
  120. 3600  PUT3,R.NO
  121. 3610  NEXTY
  122. 3620  RETURN
  123. 3700  LOCATE15,1:PRINTFNCN$("Standby... Reading files",80):NF=0
  124. 3705  FORZ=N.TRXTO1STEP-1
  125. 3710  GETPF,Z:IFFH(8)<>FNAB$(CD$)THEN3750
  126. 3730  LSETFH(2)=FH(2):LSETFH(5)=FH(5):Z=0:NF=1
  127. 3750  NEXTZ
  128. 3760  ONERRORGOTO3770:GETN,N.BA:CK.NO=CVS(CK.N$):RETURN
  129. 3770  ONERRORGOTO58000:RESUMENEXT
  130. 3800  CLOSE:GOTO1000
  131. 3900  GOSUB 49700:GOSUB 810:LOCATE 2,3:COLOR 15:PRINT FNCN$(FNSS$(BANK$)+": "+MO$(MO)+" 19"+RIGHT$(DAT$,2),76):COLOR 7:LOCATE 4,5:PRINT A.NAME$;:GOSUB 3950
  132. 3905  LOCATE21,3:PRINTSG$;:LOCATE7,5:PRINT"Date       :";TAB(53)"Check No.:":LOCATE9,5:PRINT"Payee/Payor:";TAB(53)"Amount   :":LOCATE11,5:PRINT"Memo       :
  133. 3907  T=25:LOCATE14,1:PRINTTAB(T-5)"PRESS:":PRINTTAB(T)"<C> for a Check":PRINTTAB(T)"<D> for a Deposit":PRINTTAB(T)"<M> for the MENU
  134. 3910  T.DAT$=LEFT$(DAT$,2)+MID$(DAT$,4,2):IFNF=1THENT.DAT$=FH(2):LOCATE21,1:PRINT"Last Transaction:  Date  ";FND1$(FH(2));"     Check No.  ";:IFFH(1)="D"THENPRINT"DEPOSIT"; ELSEIFP$="P"THENPRINT"PR CK"; ELSEPRINTFH(3);
  135. 3920  IFNF=1THENPRINT"  Amount  ";USINGP1$;CVD(FH(5));:RETURN ELSERETURN
  136. 3950  IF T.BAL#=<0 THEN COLOR 23,1,1:BEEP
  137. 3960  PRINT TAB(58)USING P6$;T.BAL#:IF T.BAL#>0 THEN 3970 ELSE DELAY=2:GOSUB 50800:COLOR 7,1:LOCATE 4,58:PRINT USING P6$;T.BAL#;
  138. 3970  COLOR7:RETURN
  139. 5000  CLS:H$="**  R E P O R T   M E N U  **":GOSUB40000:RP$="":MENU$="
  140. 5010  T=18:LOCATE6,1:PRINTTAB(T)"<1> List Transaction Register":PRINTTAB(T)"<2> Budget Analysis and Average Month":PRINTTAB(T)"<3> Memo Report":PRINTTAB(T)"<4> Bank Account Summary":PRINT:PRINTTAB(T)"<5> Account Distribution Report (printer only)
  141. 5011  PRINTTAB(T)"<6> Selected Account Detail     (printer only)":PRINTTAB(T)"<7> Selected Tax Code Detail    (printer only)":PRINT
  142. 5020  PRINTTAB(T)"<T> Transaction Entry":PRINTTAB(T)"<F> File Maintenance MENU":PRINTTAB(T)"<M> Main   MENU":GOSUB50040
  143. 5030  PG=1:GOSUB150:ONINSTR("1234567",A$)GOTO5500,6000,6500,8500,7000,7500,8000
  144. 5100  CLOSE:ONINSTR("TFM",A$)GOTO1000,20000,100:BEEP:GOTO5030
  145. 5500  CLS:H$="**  TRANSACTION  REGISTER  **":GOSUB40000
  146. 5510  SW=1:GOSUB40390:IFA$=CHR$(250)THEN5650
  147. 5520  PF=1:GOSUB57000
  148. 5525  IFN.TRX=0THENGOSUB40500:IFSKIP$="S"THEN5650 ELSE5520
  149. 5530  PF=2:GOSUB57100
  150. 5540  IFN.TRX=0THENGOSUB40500:GOTO5500
  151. 5560  GET2,R.NO:GOSUB41100
  152. 5570  IFMO=1THENP.BAL#=CVD(FH(14)) ELSEP.BAL#=CVD(BAL$(MO-1))
  153. 5580  CK$=FNAB$(CD$):TB#(1)=P.BAL#
  154. 5590  IFRP$="P"THEN5700
  155. 5600  RN=1:TOP(1)=1:N.REC=N.TRX:PF=1:GOSUB45000
  156. 5605  IFA$="E"THEN5650
  157. 5610  GOSUB45900:IFA$="L"THENGOSUB9500:GOSUB45005:GOTO5605
  158. 5650  CLOSE:GOTO5000
  159. 5700  GOSUB41000
  160. 5730  PF=1:N.REC=N.TRX:GOSUB46000
  161. 5740  GOSUB5790
  162. 5750  GOTO8900
  163. 5790  LPRINTSE$;:LPRINT" T O T A L S";TAB(44)USINGP2$;T.CRED#;:LPRINTTAB(68)USINGP2$;P.BAL#:LPRINTTAB(55)USINGP2$;ABS(T.DEB#):RETURN
  164. 6000  CLS:H$="**  BUDGET ANALYSIS & AVERAGE MONTH  **":GOSUB40000
  165. 6010  SW=2:GOSUB40390:IFA$=CHR$(250)THEN6150
  166. 6020  PF=1:GOSUB57000
  167. 6030  PF=2:GOSUB57200
  168. 6060  GOSUB41200
  169. 6070  GOSUB6400
  170. 6080  LOCATE12,1:PRINTFNCN$("S O R T I N G",80)
  171. 6085  Y=N.TACC:FORX=1TOY:A$(X)=T.COD$(X):NEXT:GOSUB53000:GOSUB820:LOCATE6,1
  172. 6100  C=1:CO=1:PG=1:IFRP$="P"THENGOSUB41000
  173. 6110  FORXX=1TON.TACC
  174. 6120  CK$=A$(XX):GOSUB40200:GET2,R.NO
  175. 6125  IFFH(25)="D"ORCODE$<>"V"THEN6140
  176. 6130  IFRP$="P"THENGOSUB6200:GOTO6140
  177. 6135  GOSUB45200:IFCO>16THENGOSUB6300:IFA$="E"THENXX=N.TACC
  178. 6140  NEXTXX:IFRP$="P"THEN8900
  179. 6145  IFA$<>"E"THENGOSUB6300
  180. 6150  CLOSE:GOTO5000
  181. 6200  GOSUB46200:IFXX=N.TACCTHENRETURN ELSEGOSUB48000:RETURN
  182. 6300  GOSUB800:PRINT"Press <ENTER> to continue":PRINT"      <E> to Exit...";:GOSUB150:CO=1:IFINSTR("E"+CHR$(13),A$)=0THENBEEP:GOTO6300 ELSEIFA$="E"ORXX>=N.TACCTHENRETURN ELSECLS:GOSUB41200:LOCATE6,1:RETURN
  183. 6400  LOCATE12,1:PRINTFNCN$("Standby... Reading Files",80)
  184. 6410  FORX=1TON.TACC:TB#(X)=0
  185.